﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Data.Linq;
using System.Text;
using System.Web.Mvc;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using CryptoChat;
using CryptoChat.Controllers;
using CryptoChat.Models;
using System.IO;

namespace CryptoChat.Tests.Controllers
{
	[TestClass]
	public class HomeControllerTest
	{
		[TestMethod]
		public void Index()
		{
			// Arrange
			HomeController controller = new HomeController();

			// Act
			ViewResult result = controller.Index() as ViewResult;

			// Assert
			ViewDataDictionary viewData = result.ViewData;
			Assert.AreEqual("Welcome to ASP.NET MVC!", viewData["Message"]);
		}

		[TestMethod]
		public void About()
		{
			// Arrange
			HomeController controller = new HomeController();

			// Act
			ViewResult result = controller.About() as ViewResult;

			// Assert
			Assert.IsNotNull(result);
		}

		[TestMethod]
		public void CreateTestUsers()
		{
			User template = CryptoChatRepository.GetUser(1);

			User user = new User()
			{
				UserName = "Alpha",
				ScreenName = "AlphaMale",
				Avatar = template.Avatar,
				LastCheckedIn = DateTime.Now.Subtract(new TimeSpan(0, 10, 0)),
			};

			CryptoChatRepository.AddUser(user);

			user = new User()
			{
				UserName = "Beta",
				ScreenName = "BetaTester",
				Avatar = template.Avatar,
				LastCheckedIn = DateTime.Now,
			};

			CryptoChatRepository.AddUser(user);
		}
	}
}
